package com.shujia.day16;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.InputStreamReader;

/*
     字符流：
        字符输入流：
            Reader【抽象类】
                - InputStreamReader【具体实现子类】
                    - FileReader【继承自InputStreamReader】
                - BufferedReader 【字符缓冲输入流】

        字符输出流：
            Writer【抽象类】
                - OutputStreamWriter【具体实现子类】
                    - FileWriter【继承自OutputStreamWriter】
                - BufferedWriter【字符缓冲输出流】


        BufferedReader 【字符缓冲输入流】:
            构造方法：
                BufferedReader(Reader in) 创建使用默认大小的输入缓冲区的缓冲字符输入流。
            特殊功能：
                public String readLine() 一次读取文本文件内容的一行, 不会读取换行符


 */
public class BufferedReaderDemo1 {
    public static void main(String[] args) throws Exception {
        //创建字符缓冲输入流对象
//        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("java/src/com/shujia/day16/b3.txt")));
        BufferedReader br = new BufferedReader(new FileReader("java/src/com/shujia/day16/b3.txt"));

        //一次读一个字符
//        int i = 0;
//        while ((i=br.read())!=-1){
//            System.out.print((char) i);
//        }

        //一次读一个字符数组
//        char[] chars = new char[1024];
//        int length = 0;
//        while ((length=br.read(chars))!=-1){
//            String s = new String(chars, 0, length);
//            System.out.print(s);
//        }

        //一次读取一行数据
//        System.out.println(br.readLine());
//        System.out.println(br.readLine());
//        System.out.println(br.readLine());
//        System.out.println(br.readLine());
        String line = null;
        while ((line = br.readLine()) != null) {
            System.out.println(line);
        }

        //释放资源
        br.close();
    }
}
